package com.x.provider.customer.service.customer;

import com.x.core.domain.SuggestionTypeEnum;
import com.x.core.web.page.PageList;
import com.x.provider.api.customer.model.dto.customer.CustomerResumeSaveReqDTO;
import com.x.provider.api.customer.model.dto.customer.CustomerResumeAttributeSaveReqDTO;
import com.x.provider.api.customer.model.dto.customer.CustomerResumeSearchReqDTO;
import com.x.provider.customer.enums.SystemResumeAttributeName;
import com.x.provider.customer.model.domain.common.GenericAttribute;
import com.x.provider.customer.model.domain.customer.CustomerResume;
import org.springframework.data.domain.Page;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

public interface CustomerResumeService {
    List<String> CUSTOMER_ATTRIBUTE_NAME_OSS = Arrays.asList(SystemResumeAttributeName.AVATAR_ID.toString(), SystemResumeAttributeName.PERSONAL_HOMEPAGE_BACKGROUND_ID.toString());
    void setResumeAttribute(CustomerResumeAttributeSaveReqDTO resumeAttributeReqDTO);
    void onResumeDraftAttributeGreenFinished(Long resumeId, SystemResumeAttributeName attributeName, String value, SuggestionTypeEnum suggestionTypeEnum);
    Map<Long, List<GenericAttribute>> listResumeAttribute(List<Long> resumeIdList, SuggestionTypeEnum suggestionType);
    Map<Long, List<GenericAttribute>> listAndFillDefaultResumeAttribute(List<Long> resumeIdList, SuggestionTypeEnum suggestionType);
    Long saveResume(CustomerResumeSaveReqDTO resumeSaveReqDTO);
    List<CustomerResume> listResume(List<Long> customerIdList);
    PageList<CustomerResume> listResume(CustomerResumeSearchReqDTO reqDTO);
}
